The need to process and store digital files, documents, pictures, images and other data continues to increase rapidly. Accordingly, computer resources continue to be developed and refined. In connection with the electronic storage of data, various data storage systems have been devised for the rapid and secure storage of large amounts of data. Such systems may include one or a plurality of storage devices that are used in a coordinated fashion. Devices can also provide improved data access and/or storage times. Whether implemented using one or a plurality of storage devices, the storage provided by a data storage system can be treated as one or more storage volumes.
As computer resources have evolved, increasing amounts of data have been made available to system administrators. For example, data storage products and other computer resource systems have been created that provide more information in the form of performance metrics relating to system performance that are stored in a performance log. In some instances, a performance log may contain hundreds of entries for a large number of performance metrics related to the system.
The system administrator reads the performance metrics of the system and makes decisions as to how storage space, storage controllers, data channels, processors, and other storage assets should be allocated. Typically, the system administrator is expected to analyze most or all of the performance metrics provided to him/her while monitoring the system performance. Thus, as the number of performance metrics provided by a system increases, the job of the administrator increases in difficulty. Because most computer resource systems require a high level of quality control, experienced system administrators are typically hired to manage those systems. As the amount of performance data available to administrators has increased, the number of administrators required to review the data has increased. This in turn increases the cost of maintaining computer resource systems. One way to decreases costs would be to hire a less experienced person to manage the system. Unfortunately, this may lead to improper decisions and may sacrifice system performance and data. One goal of computer resource system developers is to lower costs for their products. However, if a low cost system still requires high priced personnel to manage the system, then the cost savings of the system are offset, thus decreasing the cost effectiveness of the system.
There have been some attempts to reduce the level of expertise required of the system administrator. Specifically, automated expert systems have been deployed in some data storage systems. These expert systems automatically monitor some or all of the performance metrics and compare them with predetermined metric thresholds when the performance metric is received. If the received performance metric meets or exceeds a corresponding metric threshold, then the expert system can notify the system administrator that their attention is required. Such expert systems can operate rather effectively and efficiently in a particular setting as long as the behavior of the system or system environment does not change. However, such expert systems can only be effectively used with systems in which they are an “expert”. In other words, the expert system must be programmed to deal with certain situations that occur within a particular system under certain conditions. If the behavior of the system does change, then the expert system is no longer an expert. Rather, the thresholds programmed in the expert system along with other algorithms provided therein may become useless when trying to manage the system having new behaviors.